package com.ruoyi.system.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.system.entity.AbdulBaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 桌台自助计费规则对象 table_self_service_billing_rules
 *
 * @author ruoyi
 * @date 2025-05-09
 */
@ApiModel("桌台自助计费规则对象")
public class TableSelfServiceBillingRules extends AbdulBaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 桌台自助计费规则表的唯一标识符，自动递增 */
    @ApiModelProperty("主键ID")
    private Long id;

    /** 计费类型，例如：按时计费、按次计费等 */
    @ApiModelProperty("计费类型")
    @Excel(name = "计费类型，例如：按时计费、按次计费等")
    private String billingType;

    /** 计费名称，用于描述具体的计费规则 */
    @ApiModelProperty("计费名称")
    @Excel(name = "计费名称，用于描述具体的计费规则")
    private String billingName;

    /** 计费编号，用于唯一标识计费规则 */
    @ApiModelProperty("计费编号")
    @Excel(name = "计费编号，用于唯一标识计费规则")
    private String billingCode;

    /** 计费方式，详细描述计费的具体规则，如每小时费用等 */
    @ApiModelProperty("计费方式")
    @Excel(name = "计费方式，详细描述计费的具体规则，如每小时费用等")
    private String billingMethod;

    /** 活动，关联的活动名称或描述 */
    @ApiModelProperty("活动")
    @Excel(name = "活动，关联的活动名称或描述")
    private String activity;

    /** 排序，用于确定计费规则在列表中的显示顺序 */
    @ApiModelProperty("排序")
    @Excel(name = "排序，用于确定计费规则在列表中的显示顺序")
    private Long sortOrder;

    /** 状态，表示计费规则是否有效 */
    @ApiModelProperty("状态")
    @Excel(name = "状态，表示计费规则是否有效")
    private String status;


    /** 整单折扣，表示整单可以享受的折扣比例 */
    @ApiModelProperty("整单折扣")
    @Excel(name = "整单折扣，表示整单可以享受的折扣比例")
    private BigDecimal fullOrderDiscount;

    /** 折扣方式，例如：满减、折扣等 */
    @ApiModelProperty("折扣方式")
    @Excel(name = "折扣方式，例如：满减、折扣等")
    private String discountMethod;

    /** 参与最低消费 */
    @ApiModelProperty("参与最低消费")
    @Excel(name = "参与最低消费")
    private Integer participateInMinimumConsumption;

    /** 参与会员积分 */
    @ApiModelProperty("参与会员积分")
    @Excel(name = "参与会员积分")
    private Integer participateInMemberPoints;

    /** 支持积分抵现*/
    @ApiModelProperty("支持积分抵现")
    @Excel(name = "支持积分抵现")
    private Integer supportPointsCashout;

    /** 自助预订续费*/
    @ApiModelProperty("自助预订续费")
    @Excel(name = "自助预订续费")
    private Integer selfServiceReservationRenewal;

    /** 自助预订新购 */
    @ApiModelProperty("自助预订新购")
    @Excel(name = "自助预订新购")
    private Integer selfServiceReservationNewPurchase;

    /** 手机号 */
    @ApiModelProperty("手机号")
    @Excel(name = "手机号")
    private String phone;

    public void setId(Long id)
    {
        this.id = id;
    }

    public Long getId()
    {
        return id;
    }

    public void setBillingType(String billingType)
    {
        this.billingType = billingType;
    }

    public String getBillingType()
    {
        return billingType;
    }

    public void setBillingName(String billingName)
    {
        this.billingName = billingName;
    }

    public String getBillingName()
    {
        return billingName;
    }

    public void setBillingCode(String billingCode)
    {
        this.billingCode = billingCode;
    }

    public String getBillingCode()
    {
        return billingCode;
    }

    public void setBillingMethod(String billingMethod)
    {
        this.billingMethod = billingMethod;
    }

    public String getBillingMethod()
    {
        return billingMethod;
    }

    public void setActivity(String activity)
    {
        this.activity = activity;
    }

    public String getActivity()
    {
        return activity;
    }

    public void setSortOrder(Long sortOrder)
    {
        this.sortOrder = sortOrder;
    }

    public Long getSortOrder()
    {
        return sortOrder;
    }

    public void setStatus(String status)
    {
        this.status = status;
    }

    public String getStatus()
    {
        return status;
    }

    public void setFullOrderDiscount(BigDecimal fullOrderDiscount)
    {
        this.fullOrderDiscount = fullOrderDiscount;
    }

    public BigDecimal getFullOrderDiscount()
    {
        return fullOrderDiscount;
    }

    public void setDiscountMethod(String discountMethod)
    {
        this.discountMethod = discountMethod;
    }

    public String getDiscountMethod()
    {
        return discountMethod;
    }

    public void setParticipateInMinimumConsumption(Integer participateInMinimumConsumption)
    {
        this.participateInMinimumConsumption = participateInMinimumConsumption;
    }

    public Integer getParticipateInMinimumConsumption()
    {
        return participateInMinimumConsumption;
    }

    public void setParticipateInMemberPoints(Integer participateInMemberPoints)
    {
        this.participateInMemberPoints = participateInMemberPoints;
    }

    public Integer getParticipateInMemberPoints()
    {
        return participateInMemberPoints;
    }

    public void setSupportPointsCashout(Integer supportPointsCashout)
    {
        this.supportPointsCashout = supportPointsCashout;
    }

    public Integer getSupportPointsCashout()
    {
        return supportPointsCashout;
    }

    public void setSelfServiceReservationRenewal(Integer selfServiceReservationRenewal)
    {
        this.selfServiceReservationRenewal = selfServiceReservationRenewal;
    }

    public Integer getSelfServiceReservationRenewal()
    {
        return selfServiceReservationRenewal;
    }

    public void setSelfServiceReservationNewPurchase(Integer selfServiceReservationNewPurchase)
    {
        this.selfServiceReservationNewPurchase = selfServiceReservationNewPurchase;
    }

    public Integer getSelfServiceReservationNewPurchase()
    {
        return selfServiceReservationNewPurchase;
    }

    public void setPhone(String phone)
    {
        this.phone = phone;
    }

    public String getPhone()
    {
        return phone;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("billingType", getBillingType())
                .append("billingName", getBillingName())
                .append("billingCode", getBillingCode())
                .append("billingMethod", getBillingMethod())
                .append("activity", getActivity())
                .append("sortOrder", getSortOrder())
                .append("status", getStatus())
                .append("fullOrderDiscount", getFullOrderDiscount())
                .append("discountMethod", getDiscountMethod())
                .append("participateInMinimumConsumption", getParticipateInMinimumConsumption())
                .append("participateInMemberPoints", getParticipateInMemberPoints())
                .append("supportPointsCashout", getSupportPointsCashout())
                .append("selfServiceReservationRenewal", getSelfServiceReservationRenewal())
                .append("selfServiceReservationNewPurchase", getSelfServiceReservationNewPurchase())
                .append("phone", getPhone())
                .toString();
    }
}
